from __future__ import annotations

import datetime
from dataclasses import dataclass, field

from src.application.common.dto import DTO
from src.application.user.enums import LangCode


@dataclass(frozen=True)
class UserDTO(DTO):
    """
    Модель пользователя
    """

    id: int
    tg_id: int
    balance: float = 0
    username: str | None = None
    email: str | None = None
    lang_code: LangCode = LangCode.ru
    is_registered: bool = field(default=False, init=True)
    test_proxy_acquired: datetime.datetime | None = None
    was_registered: datetime.datetime | None = None
